草庐IT

c++ - 什么是 void(*)(void *)

全部标签

python - ctypes 从 c 函数返回一个字符串

我是Python的老手,但对C的涉猎不多。在互联网上半天没有找到适合我的东西后,我想我应该在这里问一下并获得我需要的帮助。我想做的是编写一个简单的C函数,它接受一个字符串并返回一个不同的字符串。我计划用多种语言(Java、Obj-C、Python等)绑定(bind)此函数,所以我认为它必须是纯C语言?这是我目前所拥有的。请注意,当我尝试在Python中检索值时出现段错误。你好.c#include#include#includeconstchar*hello(char*name){staticchargreeting[100]="Hello,";strcat(greeting,name)

html - 需要一个用于 HTML 的简单 Bison 语法

我查看了Bison的帮助并写了这篇文章,但我不确定它是否完全正确。我还需要一个yylex()来处理词法分析器(它应该是Flex工具)。我知道一些关于上下文无关语法的基本知识。但我不知道如何正确实现它们!:(我想要一个用于HTML的简单Bison语法。问题是:下面的语法应该改变什么?%{#includeintyylex(void);intyyerror(charconst*);%}%tokenNUM_TOKENFILENAME_TOKENCOLOR_TOKENNAME_TOKEN/*HtmlGrammerfollows...*/%%/*Anyhtmltagfollowthispatter

html - 需要一个用于 HTML 的简单 Bison 语法

我查看了Bison的帮助并写了这篇文章,但我不确定它是否完全正确。我还需要一个yylex()来处理词法分析器(它应该是Flex工具)。我知道一些关于上下文无关语法的基本知识。但我不知道如何正确实现它们!:(我想要一个用于HTML的简单Bison语法。问题是:下面的语法应该改变什么?%{#includeintyylex(void);intyyerror(charconst*);%}%tokenNUM_TOKENFILENAME_TOKENCOLOR_TOKENNAME_TOKEN/*HtmlGrammerfollows...*/%%/*Anyhtmltagfollowthispatter

c - 如何仅在 C 中列出一级目录?

在终端中我可以调用ls-d*/。现在我想要一个c程序为我做这件事,就像这样:#include#include#include#includeintmain(void){intstatus;char*args[]={"/bin/ls","-l",NULL};if(fork()==0)execv(args[0],args);elsewait(&status);return0;}这将ls-l一切。但是,当我尝试时:char*args[]={"/bin/ls","-d","*/",NULL};我会得到一个运行时错误:ls:*/:Nosuchfileordirectory

c - 如何仅在 C 中列出一级目录?

在终端中我可以调用ls-d*/。现在我想要一个c程序为我做这件事,就像这样:#include#include#include#includeintmain(void){intstatus;char*args[]={"/bin/ls","-l",NULL};if(fork()==0)execv(args[0],args);elsewait(&status);return0;}这将ls-l一切。但是,当我尝试时:char*args[]={"/bin/ls","-d","*/",NULL};我会得到一个运行时错误:ls:*/:Nosuchfileordirectory

python - 段错误 - python C 扩展中的核心转储

我正在为python编写一个c扩展。正如您在下面看到的,代码的目的是计算两个vector的欧氏距离。第一个参数n是vector的维度,第二个,第三个参数是float的两个列表。我在python中这样调用函数:importcutilcutil.c_euclidean_dist(2,[1.0,1,0],[0,0])它运行良好,返回正确的结果。但是如果我这样做超过100次(维度是1*1000),它会导致段错误-核心转储:#!/usr/bin/envpython#coding:utf-8importcutilimportscienceimporttimea=[]b=[]d=0.0forxinr

python - 段错误 - python C 扩展中的核心转储

我正在为python编写一个c扩展。正如您在下面看到的,代码的目的是计算两个vector的欧氏距离。第一个参数n是vector的维度,第二个,第三个参数是float的两个列表。我在python中这样调用函数:importcutilcutil.c_euclidean_dist(2,[1.0,1,0],[0,0])它运行良好,返回正确的结果。但是如果我这样做超过100次(维度是1*1000),它会导致段错误-核心转储:#!/usr/bin/envpython#coding:utf-8importcutilimportscienceimporttimea=[]b=[]d=0.0forxinr

c - 如何在 Linux 中使用新内核编译模块

切换到Ubuntu13.10后,我需要为新内核编译设备驱动程序。调用make会导致2个错误:error:implicitdeclarationoffunction‘kzalloc’error:implicitdeclarationoffunction‘kfree’相同的make命令在Ubuntu13.04中运行良好,但现在失败了。我还检查了KDIR:=/lib/modules/$(shelluname-r)/build在Makefile中使用,解析后变为/lib/modules/3.11.0-18-generic/build。与此modulecompilationguide相比,Mak

c - 如何在 Linux 中使用新内核编译模块

切换到Ubuntu13.10后,我需要为新内核编译设备驱动程序。调用make会导致2个错误:error:implicitdeclarationoffunction‘kzalloc’error:implicitdeclarationoffunction‘kfree’相同的make命令在Ubuntu13.04中运行良好,但现在失败了。我还检查了KDIR:=/lib/modules/$(shelluname-r)/build在Makefile中使用,解析后变为/lib/modules/3.11.0-18-generic/build。与此modulecompilationguide相比,Mak

dprintf 的跨平台兼容性

Linux有这个不错的功能dprintf:Thefunctionsdprintf()andvdprintf()(asfoundintheglibc2library)areexactanaloguesoffprintf()andvfprintf(),exceptthattheyoutputtoafiledescriptorfdinsteadoftoagivenstream.然而,正如同一来源指出的那样:ThesefunctionsareGNUextensions,notinCorPOSIX.Clearly,thenameswerebadlychosen.Manysystems(likeM